Шаг 13 - Реализуем захват и освобождение.

Visual Basic
Visual C++

Visual Basic

При запуске приложения производим захват.

Private Sub Form_Load()
	Set objDirectX = New DirectX7
	Set dri = objDirectX.DirectInputCreate
	Set dmmouse = dri.CreateDevice("GUID_SysMouse")
	dmmouse.SetCooperativeLevel Form1.hWnd, DISCL_FOREGROUND Or DISCL_NONEXCLUSIVE
	dmmouse.SetCommonDataFormat DIFORMAT_MOUSE
	Me.Show
	dmmouse.Acquire
End Sub

При закрытии освобождение

Private Sub Form_Terminate()
dmmouse.Unacquire
End Sub

Visual C++

При запуске приложения и его активизации производим захват.

void CDImputDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
{
   CDialog::OnActivate(nState, pWndOther, bMinimized);
   HRESULT hr;
   hr=g_pMouse->Acquire();
	if FAILED(hr) 
   { 
	     ASSERT(FALSE);
   }
   // TODO: Add your message handler code here
	
}

При выходе из приложения освобождение

void CDImputDlg::OnDestroy() 
{

   HRESULT hr;
   hr=g_pMouse->Unacquire();
   if FAILED(hr) 
   { 
	     ASSERT(FALSE);
   }
   CDialog::OnDestroy();
   // TODO: Add your message handler code here
}
Hosted by uCoz